package tarena.dao;

import org.apache.ibatis.annotations.Param;
import tarena.entity.TabAccount;

import java.util.List;

/**
 * 通过@MapperScannerConfigurer扫描目录中的所有接口, 动态在Spring Context中生成实现.
 * 方法名称必须与Mapper.xml中保持一致.
 * 
 * @author Leslie
 */
@MyBatisRepository
public interface TabAccountDao {
	
	TabAccount getById(Long id);

	TabAccount findByLoginName(String logingName);
	
	List<TabAccount> getAll();
	
	/**
	 * 分页查询

	 * @param pageStart
	 * @param pageSize
	 * @return
	 */
	List<TabAccount> searchPage(@Param("pageStart") int pageStart, @Param("pageSize") int pageSize);
	List<TabAccount> searchPageByName(@Param("key") String key, @Param("pageStart") int pageStart, @Param("pageSize") int pageSize);
	
	/**
	 * 分页查询总记录数

	 * @return
	 */
	Long searchCount();
	Long searchCountByName(String key);
	
	void save(TabAccount tabAccount);
	
	void update(TabAccount tabAccount);
	
	/**
	 * 软删除
	 */
	void delete(Long id);


	TabAccount getByLoginName(String loginName);
}
